エキスパートのためのMySQL トラブルシューティングガイド
https://gyazo.com/5b032c92f55ed60a4e0a16ec1b761f03
2010年6月12日紙版発売
amazonレビューでべた褒めされてる
ちょっと古そう
中身が辞書っぽいので頭から読んでいくのは辛そう(しらんけど)
第1章 MySQLの概要
1 MySQLとは?
1-1 世界で最も有名なオープンソースRDBMS
1-2 LAMPの“M”
1-3 MySQLの歴史
2 MySQL Serverの種類
2-1 FOSS Exceptionとは?
3 MySQLの構造
3-1 ストレージエンジン
3-2 MySQLレプリケーション
3-3 セッション
3-4 クエリキャッシュ
3-5 MySQLシステムライブラリ
4 MySQLのセットアップ
4-1 MySQLを入手しよう
4-2 パッケージの種類
4-3 ディレクトリ構造とシステムデータベース
4-4 起動/停止/自動起動
4-5 コマンドラインオプションとオプションファイルの利用
4-6 my.cnf設定例
4-7 複数のインスタンスを起動する
5 MySQL Serverにアクセスする
5-1 mysqlコマンド
5-2 GUIツール
6 堅牢な運用を行うための推奨設定
6-1 mysql_secure_installation
6-2 DNSへの問い合わせを取り除く
6-3 TCP/IPを利用しない
6-4 バイナリログ
6-5 クエリキャッシュを利用しない
6-6 メモリのサイジング
6-7 ディスクキャッシュに関する注意点
6-8 InnoDBにおけるディスク関連のチューニング
7 インストール中によく起きる問題と対処法
7-1 パッケーシがインストールできない
7-2 異なるバージョンのMySQLが起動する
7-3 Solaris用パッケージのインストール時にエラーメッセージが出る
7-4 mysqldが起動しない
第2章 開発時における問題
1 文字化け
1-1 MySQLにおける文字コードの仕組み
1-2 文字コード関連のシステム変数
1-3 利用できる文字コード
1-4 MySQL Serverの設定
1-5 テーブルに格納されるデータの文字コード
1-6 現在設定されている文字コードを確認する
1-7 アプリケーションによる文字コードの指定方法
1-8 文字コードに関する諸問題
1-9 文字コードに関するまとめ
2 MySQL CLI上で表示されるエラーを理解する
3 トランザクション
3-1 MySQLにおけるトランザクション
3-2 トランザクション利用時の注意点
3-3 トランザクションのまとめ
4 SQLモード
4-1 SQLモードの種類
4-2 特別なSQLモード
4-3 SQLモードのまとめ
5 アプリケーションによるエラーハンドリング
5-1 エラーハンドリングの流れ
5-2 各種エラーへの対処
5-3 エラーを捕捉する
5-4 エラーハンドリングのまとめ
第3章 MySQLの状態をみる
1 SHOWコマンドとINFORMATION_SCHEMA
1-1 MySQL Serverの状態を調べるSHOWコマンド
1-2 MySQLの各種オブジェクトの状態を調べるSHOWコマンド
1-3 テーブルの詳細な情報を調べるSHOWコマンド
1-4 権限に関するSHOWコマンド
1-5 ストレージエンジンの状態を調べるSHOWコマンド
1-6 レプリケーション関連のSHOWコマンド
1-7 その他のSHOWコマンド
1-8 INFORMATION_SCHEMA
2 EXPLAIN
2-1 idとSelect Type
2-2 table
2-3 Record Access Type
2-4 possible_keys とkey,key_len
2-5 ref
2-6 rows
2-7 Extra
2-8 EXPLAINのバリエーション
2-9 EXPLAINのまとめ
3 プロファイリング
3-1 プロファイリングを有効にする
3-2 クエリを実行する
3-3 プロファイリング情報を表示する
3-4 プロファイリング情報の履歴
3-5 プロファイリング情報の見方
4 MySQLのログ
4-1 エラーログ
4-2 バイナリログ
4-3 一般クエリログ
4-4 スロークエリログ
4-5 トレースファイル
4-6 ストレージエンジンが作成するログファイル
4-7 ログファイル比較
5 InnoDBモニタ
5-1 標準のInnoDBモニタ
5-2 ロックモニタ
5-3 テーブルモニタ
5-4 テーブルスペースモニタ
6 システムの状態を調べる
6-1 UNIX基本コマンド
6-2 情報収集ツール
第4章 DTrace
1 DTraceとは
1-1 プローブとプロバイダ
1-2 SDT/Fasttrapプロバイダの別名
1-3 MySQL特有のプローブ
1-4 コンパイル時の設定
2 dtraceコマンド
2-1 Probeをリストアップ
2-2 プローブを有効にする方法
2-3 プローブがFireしたときに採取できる情報
3 D言語プログラムを書こう
3-1 D言語プログラムの構造
3-2 変数を使おう
3-3 変数の型
3-4 情報を出力する方法を極めよう
3-5 投機トレース
3-6 D言語プログラムサンプル
4 DTrace Toolkit
5 Apple Instruments
6 DTraceのまとめ
第5章 運用中に起きる諸問題
1 レプリケーション
1-1 レプリケーションの仕組み
1-2 レプリケーションのセットアップ
1-3 レプリケーションの操作
1-4 よく起きる問題の原因と対処法
1-5 レプリケーションを堅牢にするためのテクニック
1-6 まとめ
2 クラッシュ
2-1 シグナル
2-2 スタックトレース
2-3 スタックトレースからバグの原因を探る
2-4 コア解析
3 クラッシュリカバリ
3-1 InnoDB
3-2 InnoDB
4 テーブルの破損
4-1 テーブル破損のシナリオ
4-2 破損が起きたときの兆候
4-3 破損からの回復
5 性能の低下
5-1 スロークエリログ
5-2 MySQLの性能改善計画
6 ハードウェア障害
6-1 ネットワークエラー
6-2 CPUやシステムチップ,バスのエラー
6-3 メモリエラー
6-4 ディスクエラー
6-5 ハードウェア障害に関するまとめ
第6章 堅牢な運用を実現するために
1 バックアップとリストア
1-1 mysqldump
1-2 コールドバックアップ
1-3 mysqlhotcopy
1-4 スナップショット
1-5 バイナリログ
1-6 InnoDB Hot Backup
1-7 その他のバックアップツール
1-8 まとめ
2 High Availability
2-1 HAクラスター
2-2 ネットワークの冗長化
2-3 MySQL Cluster
2-4 MySQLレプリケーション
2-5 High Availabilityのまとめ
3 セキュリティ
3-1 セキュアな MySQL構築の大原則
3-2 不正ログインを防ぐ
3-3 SQLインジェクション
4 アップグレード
4-1 MySQLにおけるバージョンの考え方
4-2 どのようなときにアップグレードするべきか
4-3 アップグレードの概要
4-4 レプリケーションを利用したアップグレード
4-5 アップグレード時における注意点
第7章 ソースコードのビルド
1 ソースコードを入手する
1-1 ソースコード版パッケージ
1-2 Bazaar
2 ビルドしよう!
2-1 gccコンパイラオプション
2-2 ソースコードを展開する
2-3 configure
2-4 make
2-5 ccache
2-6 BUILD/compile*スクリプト
3 QAテスト
3-1 MySQL Test Framework
3-2 valgrind
3-3 ベンチマークツール
3-4 QAテストのまとめ